package edu.hgnc.test;


public interface ConvertFactory<S, R> {

	// 泛型的上限，？只能是String的子类
	// List<? extends String> getAll();

	// // 泛型的下限，？只能是String的父类
	// List<? super String> getAll2();

	<M extends R> ConverterObjectList<S, M> getList(Class<M> targetType);
}


interface ConverterObjectList<A, B> {

	A convert(B source);
}

// CF接口的实现
class CFImpl implements ConvertFactory<String,Integer>{

	/**
	 * @param targetType
	 * @param <M> 可以自己随便定义，就不用在类上定义泛型了。
	 * @return
	 */
	@Override
	public <M extends Integer> ConverterObjectList<String, M> getList(Class<M> targetType) {
		return null;
	}
}
